package santeclair.connexion.domaine.technique.connexionLocale;

import santeclair.referentiel.bean.Organisme;

/**
 * Classe permettant l'utilisation des informations d'une trame d'identification aller
 * 
 * @author pchaussalet
 */
public class CriteresIdentification extends AbstractInfosIdentification {
    private static final int LONGUEUR_IDENTIFICATION_COMPAGNIE = 8;
    private static final int LONGUEUR_IDENTIFICATION_SUPPLEMENTAIRE = 2;
    private static final int LONGUEUR_NUMERO_CONTRAT = 16;
    private static final int LONGUEUR_COMPLEMENT_NUMERO_CONTRAT = 16;
    private static final int LONGUEUR_NOM = 32;
    private static final int LONGUEUR_PRENOM = 32;
    private static final int LONGUEUR_DATE_NAISSANCE = 8;
    private static final int LONGUEUR_CODE_POSTAL = 5;
    private static final int LONGUEUR_FILLER1 = 44;
    private static final int LONGUEUR_TYPE_ECHANGE = 1;
    private static final int LONGUEUR_FILLER2 = 36;

    private Organisme organisme;

    private String identificationCompagnie;
    private String identifiantSupplementaire;
    private String numeroContrat;
    private String complementNumeroContrat;
    private String nom;
    private String prenom;
    private String dateNaissance;
    private String codePostal;
    private String filler1;
    private String typeEchange;
    private String filler2;

    public CriteresIdentification(String trame) {
        trameTemporaire = new StringBuilder(trame);
        identificationCompagnie = extraireNbCaracteres(LONGUEUR_IDENTIFICATION_COMPAGNIE);
        identifiantSupplementaire = extraireNbCaracteres(LONGUEUR_IDENTIFICATION_SUPPLEMENTAIRE);
        numeroContrat = extraireNbCaracteres(LONGUEUR_NUMERO_CONTRAT);
        complementNumeroContrat = extraireNbCaracteres(LONGUEUR_COMPLEMENT_NUMERO_CONTRAT);
        nom = extraireNbCaracteres(LONGUEUR_NOM);
        prenom = extraireNbCaracteres(LONGUEUR_PRENOM);
        dateNaissance = extraireNbCaracteres(LONGUEUR_DATE_NAISSANCE);
        codePostal = extraireNbCaracteres(LONGUEUR_CODE_POSTAL);
        filler1 = extraireNbCaracteres(LONGUEUR_FILLER1);
        typeEchange = extraireNbCaracteres(LONGUEUR_TYPE_ECHANGE);
        filler2 = extraireNbCaracteres(LONGUEUR_FILLER2);
    }

    public String getIdentificationCompagnie() {
        return identificationCompagnie;
    }

    public String getIdentifiantSupplementaire() {
        return identifiantSupplementaire;
    }

    public String getNumeroContrat() {
        return numeroContrat;
    }

    public String getComplementNumeroContrat() {
        return complementNumeroContrat;
    }

    public String getNom() {
        return nom;
    }

    public String getPrenom() {
        return prenom;
    }

    public String getDateNaissance() {
        return dateNaissance;
    }

    public String getCodePostal() {
        return codePostal;
    }

    public String getFiller1() {
        return filler1;
    }

    public String getTypeEchange() {
        return typeEchange;
    }

    public String getFiller2() {
        return filler2;
    }

    public void setNumeroContrat(String numeroContrat) {
        this.numeroContrat = numeroContrat;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }

    public void setDateNaissance(String dateNaissance) {
        this.dateNaissance = dateNaissance;
    }

    /**
     * @return the organisme
     */
    public Organisme getOrganisme() {
        return organisme;
    }

    /**
     * @param organisme the organisme to set
     */
    public void setOrganisme(Organisme organisme) {
        this.organisme = organisme;
    }
}
